# 分析2023年人均收入数据
from getInfoByRequest import getInfoByRequest
import parsel
import json
import pandas as pd


class getIncomeData:
    def __init__(self):
        pass

    # 获取各省市人均收入数据
    @staticmethod
    def processPerCapitaIncomeData():
        # 爬虫获取数据
        url = 'https://finance.sina.com.cn/wm/2024-01-23/doc-inaenzye3303683.shtml'
        response = getInfoByRequest.getIncomeData(url)
        if response.status_code != 200:
            print('数据获取失败')
        else:
            # 解析数据
            html_data = response.content.decode('utf-8')  # 用 utf =-8 解析字节流
            # print(html_data)
            # 构造解析对象
            selectors = parsel.Selector(html_data)
            # 获取数据
            trs = selectors.css('.article div div table tbody tr')
            income_data = []
            for td in trs[2:-1]:
                td = td.css('td::text').getall()  # 每一个 td 的第一个是 城市名，第二个是人均收入
                # 保存数据
                td[1] = int(td[1])
                income_data.append(td)
            # 最后的 income_data 第一个位置是 省份，第二个位置是 人均收入
            columns = ['省份', '人均收入']
            df = pd.DataFrame(income_data, columns=columns)

            return income_data
